1
Путь к надежной абстракции
AI034Lesson 10
00:00

Истинное мастерство в Rust начинается с DRY (Не повторяйся) принципа. Прежде чем мы обратимся к обобщенному синтаксису, мы должны пройти путь конкретной абстракции. Представьте розничное приложение, сравнивающее цены (i32), и температуры датчиков (f32); копирование логики сравнения создает технический долг где баги процветают в тенях дублирования.

1. Процесс рефакторинга

Чтобы перейти от дублирования к элегантности, следуйте трехэтапному процессу извлечения: Определите повторяющуюся логику, извлеките эту логику в тело функции с четкими входами/выходами, и обновите исходные точки вызова для использования новой функции.

fn largest_i32()fn largest_char()fn largest(list: &[i32])Переработать

2. Ограничения конкретной логики

Хотя Пример 10-3 успешно абстрагирует логику, но остается привязанным к конкретным типам данных. Он решает проблему дублирования логики, но оставляет нас уязвимыми к дублированию типов. Этот потолок является катализатором для абстрактных типов ($$), где логика наконец-то освобождается от конкретных структур памяти.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>